const fs = require("fs");
const path = require("path");
const http = require("http");
let argv = process.argv[2];
const server = http.createServer((req, res) => {
    if (argv) {
        let filePath = path.join(__dirname, argv);
        console.log(filePath);
        if (fs.existsSync(filePath)) {
            fs.open(filePath, 'r', (err, fd) => {
                if (err) { console.log(err) }
                else {
                    console.log("open file success");
                    var readBuf = Buffer.alloc(2048), // 读取多少字节
                        bufOffset = 0,
                        readbufLength = readBuf.length,
                        filePosition = 0;            // 提供缓冲区的第50个字节开始
                    // 读取文件
                    fs.read(fd, readBuf, bufOffset, readbufLength, filePosition, function (err, readBytes, buffer) {
                        // console.log('err: ' + err)
                        // console.log('readBytes: ' + readBytes) // 读入缓冲区的字节数
                        console.log(buffer.toString())       // 读入缓冲区的内容
                        res.end(buffer);

                    })

                    // 写入文件
                    // var writeBuf = Buffer.from("我是要写入的内容；"),
                    //     bufPosition = 0, // 待写入数据在缓冲区的起始位置
                    //     writbufLength = writeBuf.length, // 待写入数据的长度
                    //     filePosition = null; // 从文件中的什么位置开始写入数据
                    // fs.write(fd, writeBuf, bufPosition, writbufLength, filePosition, function (err, bytesWritten, buffer) {
                    //     console.log(err);
                    //     console.log(bytesWritten);
                    //     console.log(buffer.toString());
                    // })

                    // 关闭文件
                    fs.close(fd, function () {
                        console.log("操作完毕，关闭文件")
                    })
                    //     var buffer = new Buffer(255);
                    //     fs.read(fd, buffer, 0, 10, 0, (err, bytesRead, buffer) => {
                    //         if (err) {
                    //             console.log(err);
                    //         }
                    //         console.log(bytesRead, buffer.slice(0, bytesRead).toString());
                    //         fs.close(fd);
                    //     })
                }

            })

        }
        else {
            console.log("该路径文件不存在");
        }
    }
    // else {
    //     let filePath = path.join(__dirname, "fileReader1.js");
    //     let fileContent = fs.readFileSync(filePath);
    //     res.end(fileContent);

    // }


})
server.listen(8081);
console.log("server is listening 8081")



